package flexo.gui;

import flexo.graphic.Color;
import flexo.math.Coords;

public abstract class Theme extends flexo.common.ReferenceCount
{
	protected Color fontColor = Color.WHITE;
	protected String themeName;
	
	public abstract Panel createPanel(String name, Coords size);
	public abstract Button createButton(String name, Coords size, String text);
	public abstract Cursor createCursor(Coords size, Coords hotspot);
	
	public Theme (String name)
	{
		themeName = name;
	}
	
	public String getName()
	{
		return themeName;
	}
	
	public String toString()
	{
		return getName();
	}
	
	public TextArea createTextArea(String name, Coords size, String font, float fontSize)
	{
		TextArea ta = new TextArea(name,size,font,fontSize);
		ta.setColor(fontColor);
		return ta;
	}
	
	public Label createLabel(String name, Coords size,String font)
	{
		Label la = new Label(name,size,font);
		la.setColor(fontColor);
		return la;
	}
	
	public Image createImage(String name, Coords size, String sourceFile)
	{
		return new Image(name,size,sourceFile);
	}
	
	public String getDefaultFont()
	{
		return "media/fonts/Calibri.xml";
	}
}
